﻿using System;

namespace PrimeNumberGenerator
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接受用户输入上下限  
            Console.Write("请输入下限: ");
            int lowerLimit = int.Parse(Console.ReadLine());

            Console.Write("请输入上限: ");
            int upperLimit = int.Parse(Console.ReadLine());

            // 输出范围内的素数  
            Console.WriteLine($"{lowerLimit} 到 {upperLimit} 之间的所有素数是：");
            PrintPrimes(lowerLimit, upperLimit);
        }

        static void PrintPrimes(int lowerLimit, int upperLimit)
        {
            int count = 0; // 记录当前行的素数数量  

            for (int number = lowerLimit; number <= upperLimit; number++)
            {
                if (IsPrime(number))
                {
                    Console.Write(number + " ");
                    count++;

                    // 每输出 10 个素数换行  
                    if (count % 10 == 0)
                    {
                        Console.WriteLine();
                    }
                }
            }
            // 为了确保最后一行有换行，输出换行  
            if (count > 0)
            {
                Console.WriteLine();
            }
        }

        static bool IsPrime(int number)
        {
            // 0 和 1 不是素数  
            if (number < 2) return false;

            // 检查 number 是否为素数  
            for (int i = 2; i <= Math.Sqrt(number); i++)
            {
                if (number % i == 0) return false; // 有因数则不是素数  
            }
            return true; // 是素数  
        }
    }
}